package fa7.socialcode.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import fa7.socialcode.dao.ComunidadeDao;
import fa7.socialcode.dao.NoticiaDao;
import fa7.socialcode.dao.TopicoDao;
import fa7.socialcode.model.Comunidade;
import fa7.socialcode.model.Topico;
import fa7.socialcode.model.Usuario;
import fa7.socialcode.service.TopicoManager;

@Service(value = "topicoManager")
public class TopicoManagerImpl implements TopicoManager {

	@Autowired
	private TopicoDao topicoDao;
	@Autowired
	private ComunidadeDao comunidadeDao;
	
	private Usuario usuarioInSession;
	
	public Usuario getUsuarioInSession() {
		return usuarioInSession;
	}

	public void setUsuarioInSession(Usuario usuarioInSession) {
		this.usuarioInSession = usuarioInSession;
	}

	public void setTopicoDao(TopicoDao dao) {
		this.topicoDao = dao;
	}

	public List findTopicos() {
		return topicoDao.findTopicos();
	}

	public Topico findTopico(String topicoId) {
		return topicoDao.findTopico(new Long(topicoId));
	}

	public void removeTopico(String topicoId) {
		topicoDao.removeTopico(Long.valueOf(topicoId));
	}

	public void setComunidadeDao(ComunidadeDao comunidadeDao) {
		this.comunidadeDao = comunidadeDao;
	}

	public List findComunidades() {
		return comunidadeDao.findComunidades();
	}

	public void saveTopico(Topico topico, Long comunidadeId) {
		if (topico.getId() == 0) {
			topico.setDataPostagem(new Date());
		} else {
			topico.setDataPostagem(topicoDao.findDataPostagemById(topico
					.getId()));
		}

		Comunidade com = comunidadeDao.findComunidade(comunidadeId);
		topico.setComunidade(com);

		topico.setDataPostagem(new Date());
		topicoDao.saveTopico(topico);
	}
	
	public void saveTopico(Topico topico) {
		if (topico.getId() == 0) {
			topico.setDataPostagem(new Date());
		} else {
			topico.setDataPostagem(topicoDao.findDataPostagemById(topico
					.getId()));
		}
		topico.setDataPostagem(new Date());
		topicoDao.saveTopico(topico);
	}
	
}